Methods, Systems, and Products for a Metering Application

ABSTRACT

Methods, systems, and products are disclosed for enforcing a rate limit for data traffic. One method identifies a unidirectional stream of data packets flowing through a server to a downstream end user. The unidirectional stream is classified according to a rate class, with each rate class having an associated rate limit. Each rate limit specifies a maximum bit rate at which the unidirectional stream may flow. When the actual bit rate of the unidirectional stream exceeds the maximum bit rate permitted for the associated rate class, packets of data are discarded to reduce the bit rate.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/100,736 filed Apr. 7, 2005, which claims the benefit of U.S. PatentProvisional Application No. 60/635,804 filed Dec. 14, 2004, which isincorporated by reference herein in its entirety, and which also is acontinuation-in-part of U.S. patent application Ser. No. 10/719,270filed Nov. 21, 2003, now U.S. Pat. No. 7,573,906 issued Aug. 11, 2009,which claims the benefit of U.S. Patent Provisional Application No.60/470,650 filed May 15, 2003, which is incorporated by reference hereinin its entirety.

NOTICE OF COPYRIGHT PROTECTION

A portion of the disclosure of this patent document and its figurescontain material subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, but otherwise reserves all copyrightswhatsoever.

BACKGROUND

This application generally relates to electrical computers and digitalprocessing systems, to interactive video distribution systems, and tomultiplex communications. This application, more particularly, relatesto computer-to-computer protocol implementing, to computer networkmanaging, to computer-to-computer data routing, to a video distributionsystem with upstream communication, and to pathfinding or routing.

Communications network service providers need bandwidth and quality ofservice configuration options. As more and more customers desire greateraccess to broadband services, service providers need networkconfiguration options that can be customized on a per-subscriber and aper-application level. These configuration options would make thenetwork more manageable by allowing dynamic bandwidth and quality ofservice determinations. What is needed, then, are schemes thatdynamically adjust bandwidth and quality of service to reflect thedynamic needs of the communications network.

SUMMARY

The aforementioned problems, and other problems, are reduced, accordingto the exemplary embodiments, by a metering application. This meteringapplication is a network management tool that dynamically adjustsbandwidth on a per-customer level. This metering application comprisesmethods, computer systems, and computer products that enforce a ratelimit for data traffic. The data traffic may include any packetizedstream of data, such as video, images, voice (e.g., Voice-Over InternetProtocol), Internet Protocol television, and any other packetized data.The metering application identifies a stream of data packets flowingthough a server to a downstream end user. The metering applicationclassifies the unidirectional stream according to a rate class, witheach rate class having an associated rate limit. Each rate limitspecifies a maximum bit rate at which the unidirectional stream may flowthrough the server. The end-user customer typically subscribes to aclass of service. Each class of service has an associated maximum bitrate at which streams of data may flow downstream to the end-usercustomer. If the customer subscribes to a class of service having a highrate limit, the customer can receive/download data at high bit rates.If, however, the customer subscribes to a class of service having a lowrate limit, the customer can only receive/download data at low bitrates. The metering application, then, polices and enforces the ratelimit. When the customer requests a stream of data having an actual bitrate that exceeds the maximum bit rate permitted for the customer's rateclass, the metering application decides whether the rate limit must beenforced. If the metering application enforces the rate limit, themetering application will discard packets of data to reduce the bit rateof the requested stream.

According to the exemplary embodiments, methods, systems, and productsare disclosed for enforcing a rate limit for data traffic. One methodidentifies a unidirectional stream of data packets flowing though aserver to a downstream end user. The unidirectional stream is classifiedaccording to a rate class, with each rate class having an associatedrate limit. Each rate limit specifies a maximum bit rate at which theunidirectional stream may flow through the server. When the actual bitrate of the unidirectional stream exceeds the maximum bit rate permittedfor the associated rate class, packets of data are discarded to reducethe bit rate.

Other embodiments describe a system for system for enforcing a ratelimit for data traffic. This system comprises a metering applicationstored in a memory device. The system also comprises a processor, andthe processor communicates with the memory device. The meteringapplication identifies a unidirectional stream of data packets flowingthough the system to a downstream end user. The metering applicationclassifies the unidirectional stream of data packets according to a rateclass. Each rate class has an associated rate limit, with each ratelimit specifying a maximum bit rate at which the unidirectional streammay flow through the system. The metering application discards packetsof data within the unidirectional stream of data packets to reduce a bitrate until the bit rate is less than or equal to the maximum bit ratepermitted for the associated rate class.

Still more embodiments describe a computer program product for enforcinga rate limit for data traffic. The computer program product comprises acomputer-readable medium and a metering application stored on thecomputer-readable medium. The metering application comprisescomputer-readable instructions for enforcing a rate limit for datatraffic. The computer-readable instructions identify a unidirectionalstream of data packets flowing though a server to a downstream end user.The unidirectional stream is classified according to a rate class, witheach rate class having an associated rate limit. Each rate limitspecifies a maximum bit rate at which the unidirectional stream may flowthrough the server. When the actual bit rate of the unidirectionalstream exceeds the maximum bit rate permitted for the associated rateclass, packets of data are discarded to reduce the bit rate.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description, be within thescope of the present invention, and be protected by the accompanyingclaims.

DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the embodiments arebetter understood when the following Detailed Description is read withreference to the accompanying drawings, wherein:

FIGS. 1-3 are schematics illustrating the exemplary embodiments;

FIG. 4 is a schematic illustrating another scheme for enforcing ratelimits, according to more exemplary embodiments;

FIGS. 5-7 are schematics illustrating schemes for enforcing rate limitswhen two or more streams are requested, according to yet more exemplaryembodiments;

FIG. 8 is a schematic illustrating stripping and discarding informationto enforce rate limits, according to more exemplary embodiments;

FIG. 9 is a schematic illustrating multi-layer encoding for enforcingrate limits, according to still more exemplary embodiments;

FIG. 10 is a schematic illustrating degradation of television service toenforce rate limits, according to even more exemplary embodiments;

FIG. 11 is a schematic illustrating a delta definition stream to enforcerate limits, according to more exemplary embodiments;

FIG. 12 depicts another possible operating environment for the exemplaryembodiments; and

FIGS. 13 & 14 are flowcharts illustrating a method for enforcing ratelimits, according to still more exemplary embodiments.

DETAILED DESCRIPTION

Exemplary embodiments will now be described more fully hereinafter withreference to the accompanying drawings, in which exemplary embodimentsare shown. The exemplary embodiments, however, may be embodied in manydifferent forms and should not be construed as limited to theembodiments set forth herein. These embodiments are provided so thatthis disclosure will be thorough and complete and will fully convey thescope of the invention to those of ordinary skill in the art. Moreover,all statements herein reciting embodiments of the invention, as well asspecific examples thereof, are intended to encompass both structural andfunctional equivalents thereof. Additionally, it is intended that suchequivalents include both currently known equivalents as well asequivalents developed in the future (i.e., any elements developed thatperform the same function, regardless of structure).

Thus, for example, it will be appreciated by those of ordinary skill inthe art that the diagrams, schematics, illustrations, and the likerepresent conceptual views or processes illustrating the exemplaryembodiments. The functions of the various elements shown in the figuresmay be provided through the use of dedicated hardware as well ashardware capable of executing associated software. Similarly, anyswitches shown in the figures are conceptual only. Their function may becarried out through the operation of program logic, through dedicatedlogic, through the interaction of program control and dedicated logic,or even manually, the particular technique being selectable by theentity implementing this invention. Those of ordinary skill in the artfurther understand that the exemplary hardware, software, processes,methods, and/or operating systems described herein are for illustrativepurposes and, thus, are not intended to be limited to any particularnamed manufacturer.

The exemplary embodiments describe a metering application. This meteringapplication is a network management tool that dynamically adjustsbandwidth on a per-customer level. This metering application comprisesmethods, computer systems, and computer products that enforce a ratelimit for data traffic. The metering application identifies a stream ofdata packets flowing though a server to a downstream end user. Themetering application classifies the unidirectional stream according to arate class, with each rate class having an associated rate limit. Eachrate limit specifies a maximum bit rate at which the unidirectionalstream may flow through the server. The end-user customer typicallysubscribes to a class of service. Each class of service has anassociated maximum bit rate at which streams of data may flow downstreamto the end-user customer. If the customer subscribes to a class ofservice having a high rate limit, the customer can receive/download dataat high bit rates. If, however, the customer subscribes to a class ofservice having a low rate limit, the customer can only receive/downloaddata at low bit rates. The metering application, then, polices andenforces the rate limit. When the customer requests a stream of datahaving an actual bit rate that exceeds the maximum bit rate permittedfor the customer's rate class, the metering application decides whetherthe rate limit must be enforced. If the metering application enforcesthe rate limit, the metering application will discard packets of data toreduce the bit rate of the requested stream.

FIGS. 1-3 are schematics illustrating the exemplary embodiments. Theembodiments include a metering application 20. The metering application20 comprises methods, systems, computer programs, and/or computerprogram products that police and enforce rate limits for streams ofdata. Streams of data travel or flow along a communications network at abit rate. The bit rate is usually measured in bits per second, althoughother units are equally possible. To ensure that network bandwidth isefficiently utilized, the metering application 20 prevents some streamsof data from exceeding a maximum bit rate. When a stream exceeds themaximum bit rate, the metering application 20 enforces the maximum bitrate. The metering application 20, in simple terms, acts as a policeofficer. When a stream of data exceeds the maximum bit rate, or “speedlimit,” the metering application 20 implements schemes that slow orreduce the bit rate. The following paragraphs will explain the variousschemes.

FIG. 1 illustrates the metering application 20. The metering application20 operates within any computer system, such as a computer server 22.The computer server 22 communicates with a downstream end-user device 24via a communications network 26. Although the end-user device 24 isgenerically shown, the end-user device 24 may be a computer system, aset-top box, an integrated set-top box and television, a modem, a cablemodem, a digital subscriber line modem, or any other equipment, as willbe described. The end-user device 24 could also be fiber optic equipmentinterfacing with the communications network 26. The communicationsnetwork 26 may be a cable network operating in the radio-frequencydomain and/or the Internet Protocol (IP) domain. The communicationsnetwork 26, however, may also include a distributed computing network,such as the Internet (sometimes alternatively known as the “World WideWeb”), an intranet, a local-area network (LAN), and/or a wide-areanetwork (WAN). The communications network 26 may include coaxial cables,copper wires, fiber optic lines, and/or hybrid-coaxial lines. Thecommunications network 26 may even include wireless portions utilizingany portion of the electromagnetic spectrum and any signaling standard(such as the I.E.E.E. 802 family of standards, GSM/CDMA/TDMA or anycellular standard, and/or the ISM band).

As FIG. 1 illustrates, a request 28 for content is received. Theend-user desires to receive a movie, a television channel, music, orother content. The end-user then issues the request 28 for that contentvia the end-user device 24. The request 28 communicates along thecommunications network 26 and eventually to a content server 30. Thecontent server 30 stores the content requested by the end-user. Thecontent server 30 retrieves the requested content 32 and forwards thatrequested content to the end-user.

FIG. 2 illustrates a network tree structure 34. As the requested content32 communicates along the communications network 26 to the end-userdevice 24, the requested content 32 encounters the metering application20 operating in the computer server 22. The computer server 22 receivesthe requested content 32, and the metering application 20 identifies andclassifies the requested content 32. The computer server 22, forexample, may function as a router or a broadband remote access server(“BRAS”). Some network architectures utilize the computer server 22 asthe last router in a downstream direction to the end-user device 24. Therequested content 32 may further flow through other layers of switches,computers, and/or devices, but the computer server 22 is the lastintelligent device that classifies data traffic.

FIG. 3 is a schematic illustrating a scheme for enforcing rate limits,according to the exemplary embodiments. As the requested content 32flows through the computer server 22, the metering application 20identifies any egressing, unidirectional stream 34 of Internet Protocoltelevision data packets. That is, the metering application 20 identifiesstreams of Internet Protocol television data packets that are flowingout of the communications network 26 to the end-user device 24. Thestream 34 contains individual packets 36 of data, and each packet 36contains Internet Protocol television information. The meteringapplication 20 classifies the unidirectional stream 34 of InternetProtocol television data packets according to a rate class 38, with eachrate class having an associated rate limit 40. Each rate limit 40specifies a maximum bit rate at which the unidirectional stream 34 ofInternet Protocol television data packets may flow.

The metering application 20 polices and enforces the rate limit 40. Ifthe actual bit rate of the unidirectional stream 34 exceeds the ratelimit 40, the metering application 20 decides whether to enforce therate limit 40 (e.g., the “speed limit”). As FIG. 3 shows, the meteringapplication 20, for example, may decide to discard packets of datawithin the unidirectional stream 34 of Internet Protocol television datapackets. When packets are discarded, the bit rate is reduced. Themetering application 20 may intentionally discard packets of data untilthe observed or measured bit rate is less than or equal to the maximumbit rate permitted for the associated rate class. The terms “discard,”“discarding,” “discarded,” and its variants mean packets of data areremoved from the stream 34. The terms “discard,” “discarding,”“discarded,” and its variants may also mean, as later explained, thatinformation is removed or stripped from the stream 34. The meteringapplication 20, then, may simply delete packets from the stream 34. Thediscarded packets may be stored in a buffer memory 35 for laterretrieval at a later time. When the metering application 20 discardspackets, then a degraded stream 42 of Internet Protocol television datapackets exits the computer server 22. Because packets have beendiscarded, the degraded stream 42 has lesser bandwidth than the stream34 entering the computer server 22. How many packets that get discarded,and thus how much degradation is imposed, depends on the rate class 38and the associated rate limit 40.

The end-user may subscribe to a rate class. The end-user and a serviceprovider may contract for a rate class. A service level agreement, forexample, would define the service parameters. Typically various chargesare established for different classes of service. The more the end-userpays, the higher the rate class and the corresponding rate limit. Whenthe end-user's data requests exceed the rate limit for their rate class,then the metering application 20 degrades the end-user's content tomaintain the rate limit. The metering application 20 meters on aggregatetraffic rather than a single meter on a single pipe. The meteringapplication 20 permits finer granularity that identifies traffic inparticular classes and meters within that class. The meteringapplication 20 then polices bit rates based on the rate limit 40 forclasses of traffic.

The rate limit 40, however, is also important for the service provider.In order to make the communications network 26 more manageable, and tomake the selections of the ASPs and NSPs more manageable, bandwidth andQuality of Service (QoS) subsets will be provided and the overallmanagement of these capabilities will be governed by a policy-basedsystem. This policy-based system permits customization down to theper-subscriber and application flow level.

The metering application 20 permits Bandwidth on Demand (BoD). Bandwidthon Demand is basically the ability to specify and to change the maximumrates for access. BoD may apply to Network Service Providers (NSP). TheNSP's access to the communications network 26 can be set to receivevarious maximum bit rates. These changes affect their entire accesssession, and so all the applications within the session receive accessto the new rate. The NSP could request this for a single subscriber, forall subscribers, or for a pre-defined tier of service. For example, allNSP access subscribers that have elected 256.times.128 Kb/s servicemight be provided a “free weekend” of 3 Mb.times.512 Kb/s in a promotionto entice them to upgrade their service. This weekend change in thatservice tier is an example of BoD.

ASP applications can be set to receive various maximum bit rates.Similar to the NSP service, but focused on a single application ratherthan the entire access session, BoD for ASP traffic would supportsetting both a universal speed limit to all customers as well ascustomer-specific speed limit for single customers. A “Turbo” feature,such as a Turbo button, is another term often used to describe thecapability for both NSP accesses as well as ASP applications to changetheir maximum bit rates.

The rate class 38, and the associated rate limit 40, may not be abandwidth guarantee. The rate limit 40 may be just that—a maximum forthe service class. If BoD were offered in conjunction with a serviceclass that guaranteed precedence over all other traffic, this precedencewould constitute a bandwidth guarantee. Still, though, there is anexpectation that the ASP or NSP gains something from the BoDservice—even when it applies to best effort Internet. Also, there is anadditional expectation that the NSP and ASP can query for a line ratemaximum and can query for how much is already “committed” to othertraffic. BoD may persist until it is specifically changed again—in otherwords, BoD may look like a provisioning function. Alternately, BoD maybe requested for a specific interval, predefined interval, or until anaccess session is torn down.

The metering application 20 also permits Quality of Service (QoS).Because the metering application classifies streams of data, any numberof classes is possible. The exemplary embodiments will describe three(3) distinct QoS treatment categories, although those of ordinary skillin the art will recognize that more, or less, classes are possible.

The lowest level class is “best effort.” That is, traffic in this classreceives no treatment. This class is the typical “best effort” Internetservice class. Most of the applications are assumed to be part of thisclass, and most applications will interact as they do today in anotherwise undifferentiated access arrangement.

Another class receives aggregate treatment. This class could includesmost QoS applications. In this QoS arrangement, applications self-selectfrom several shared priority levels. There are no bandwidth guarantees,and applications that select the same class may contend for that class'resources. In this approach, applications need not “register” for aclass a-priori. This class, therefore, must be able to account for QoStraffic so that it can be billed by bytes or buckets. Many levels arepossible, and may include individual treatment. In this QoS arrangement,applications must register for a limited resource for a given time.These applications may have bandwidth expectations, and the approach isto cater to these expectation through prioritization. To preventundesired interactions among applications at the same priority ofservice, it is required that per-application treatment, and possiblypolicing and/or queuing, will prevent contention among apps. In thisresource reservation approach, resources are unavailable to similarapplications whether the application is in use or not, so the proposedsystem must support billing both by timing resource allocation as wellas by bytes or buckets over time periods—including by the minute. Morespecifically, applications that need special bandwidth assurance (like arequired information rate) are allocated from bandwidth dedicated tothis type of service from one of the top two tiers.

One such tier is a strict priority service or Expedited Forwarding. Thistraffic dominates all other traffic. It could be called a PlatinumOlympic Class, and best current practice reserves this class for VoIPand control traffic. For this class to retain its integrity,applications are not allowed to self-select into the class. They must beadmitted in a provisioning role and with limitations on the amount ofbandwidth they are allowed to consume. Typically that bandwidth would beset to small fraction of the overall network capacity, and less than thetotal access line capacity so that other applications are not totallystarved out.

Another such tier is higher priority service or Assured Forwarding. Inthis class, the traffic comes after the Expedited Forwarding tier, butbefore most other traffic. It could be called a Gold Olympic Class, andmost applications that require some form of QoS might share one or morequeues in this class. The key points are that the class of service canbe shared, and queues dedicated to this level might police eachapplication's capability to use the class. Policers, such as themetering application 20, could allow committed rates, and mark bursts sothat each app gets what it needs, and has a fair chance at bursting intouncommitted bandwidth.

Still another classification tier is standard priority service or BestEffort. In this class the traffic is part of the crowd. This class isexpected to be shared by the overwhelming number of applications. Interms of fairness, applications get “whatever,” but can clearly grabbandwidth when competition is absent. And to be fair, “whatever” istypically understood and applied in predictable ways as is found on theInternet. This service class supports non QoS-enabled applications, andis basically what is done today almost everywhere for DSL.

Another tier is lower priority service or Lower Effort. This class isthe background task or bulk mail service. Traffic assigned to this classis dominated by all other classes. While this seems like a completelyundesirable and underserved approach to networking, it can providecost-efficient value to certain applications. Notably peer-to-peer canbe provided a “break” on bandwidth and download limits by self-selectingto “step out of the way” of more interactive applications, like e-mailand web surfing. Similarly, backup and subscription services that wantto move a lot of data, but don't want to get in the way of moreinteractive uses of the DSL access can get their job done through thisclass.

So, how traffic is classified may determine the rate limit 40. Oncetraffic is classified, the metering application 20 polices and enforcesthe rate limit 40. When an actual bit rate exceeds the rate limit 40,the metering application 20 decides whether to enforce the rate limit40. If the metering application 20 decides to enforce the rate limit 40,the metering application may discard packets of data within the traffic.When packets are discarded, the bit rate is reduced. The meteringapplication 20, then, may include computer-readable instructions thatlogically specify when enforcement is required. The metering application20, for example, may strictly enforce the rate limit 40. That is, whentraffic exceeds the rate limit for the class, the metering application20 has no discretion on enforcement. The metering application 20discards packets until the actual bit rate is within the prescribedclass limit. Alternatively, the metering application may actively decideto enforce the rate limit and may intentionally discard packets of datauntil the observed or measured bit rate is less than or equal to themaximum bit rate permitted for the associated rate class. Becausepackets are discarded, the metering application 20 produces a degradedversion of traffic. The degraded version has a lesser bandwidth and,thus, a lower bit rate.

A sophisticated scheme, however, includes discretion. The meteringapplication 20 may utilize multiple sources of information to decidewhen enforcement of the rate limit 40 is needed. Even though aparticular end-user is requesting content that exceeds the rate limit40, the metering application may have discretion to enforce. Themetering application 20, for example, may weigh current networkbandwidth requirements. The communications network 26, for example,might have excess bandwidth availability, so the metering application 20may permit the end-user to exceed the rate limit 40. If the customer'srequest would degrade network performance below some threshold, then themetering application may also have discretion to degrade the customer'sservice to maintain adequate network performance levels.

Another discretionary scheme may include business models. Variousbusiness issues may also influence when, and how, the meteringapplication 20 enforces the rate limit 40. The end-user's monthlypayment, and/or payment history, for example, may determine how raterequests are handled. Perhaps the end-user is a “good” customer, so themetering application 20 “overlooks” excessive bit rates. What determinesa “good” customer, of course, may have many meanings. The end-user mayhave a consistent and on-time payment history, so the meteringapplication 20 has discretion to enforce the rate limit 40. If theend-user has a history of one or more delinquent payments, however, themetering application 20 may more strictly enforce rate limits.Delinquent payments may, then, influence the frequency of enforcement ofthe rate limit 40. Service level agreements may be enforced morestrictly, or more leniently, based upon payment history.

Other business models may include customer abuse of the communicationsnetwork 26. The end-user may have a history of “bad behavior,” and thisbehavior may influence how and/or when packets of data are discarded.If, for example, the end-user is a sender of spam email or other spamcontent, the service provider may decide to strictly enforce ratelimits. Other undesirable or “bad” behavior may include suspectedinfringement of intellectual property rights, such as downloading ofcopyrighted content. Even objectionable content requests, such aspornographic content requests, may be degraded to a lower rate limit. Infact, some classes of content, or even the content itself, may defaultto lower rate limits to discourage requests and downloads. Rate limitscould be imposed based upon the requested content. Content having littleor no risk may have a higher rate limit than riskier content.

Another discretionary scheme may include a history of excessive bit raterequests. The metering application 20 may track the frequency ofcustomer requests that exceed their rate limit. The metering application20 may have discretion to ignore, or only slightly degrade, infrequentrequests that exceed the rate limit 40. In other words, if the end-userrarely exceeds the rate limit 40 for their class, the meteringapplication 20 has discretion. If, however, the end-user frequentlyrequests or sends traffic that exceeds the rate limit 40, thispersistent activity may influence metering and/or discarding of packets.

The various discretionary schemes may be contained within a profile.However the metering application 20 decides to degrade service, themetering application may consult a profile. Each end-user would have aprofile, and the profile is stored in a database. When the meteringapplication 20 detects an excessive bit rate, the metering application20 queries the customer's profile stored in the database. The customer'sprofile contains payment history and/or usage history. The meteringapplication would retrieve information from the profile to determinewhether degradation is desired.

FIG. 4 is a schematic illustrating another scheme for enforcing ratelimits, according to more exemplary embodiments. When actual bit ratesexceed the rate limit 40, the metering application 20 may degradetraffic to reduce the bit rate. FIG. 4 illustrates the requested content32 flowing to the computer server 22. The metering application 20identifies the requested content 32 as a high-definition stream 50 ofInternet Protocol television data packets. The metering application 20then classifies the high-definition stream 50 according to the rateclass 38 and the associated rate limit 40. If, however, the actual bitrate of the high-definition stream 50 exceeds the rate limit 40, themetering application 20 must decide whether to enforce the rate limit40. If the metering application 20 decides to enforce the rate limit,the metering application 20 may decide to degrade the high-definitionstream 50 of Internet Protocol television data packets. FIG. 4, then,illustrates that the metering application may degrade thehigh-definition stream 50 to a standard definition stream 52 of InternetProtocol television data packets. That is, the metering application 20discards packets of data, such that the high-definition content is lost.What emerges from the computer server 22 is the degraded, standarddefinition stream 52 of Internet Protocol television data packets. Themetering application 20 thus causes degradation from high definitiontelevision service to standard definition television service. The bitrate of the degraded, standard definition stream 52 is less than orequal to the rate limit 40.

FIGS. 5-7 are schematics illustrating another scheme for enforcing ratelimits, according to yet more exemplary embodiments. Here the end-user,using the end-user device 24, makes two requests for content streams.One or both content streams exceed the allowable rate limit for theclass, so the metering application 20 must decide whether this excessiverate request is permissible. When the metering application 20 enforcesthe rate limit 40, the metering application 20 must apply a scheme forconcurrent streams.

FIG. 5, then, illustrates one scheme for concurrent streams. As FIG. 5shows, the end-user issues the first request 28 for content and, andsome other time, the end-user issues a subsequent, second request 56 forcontent. The first request 28 communicates to the content server 30, andthe content server 30 retrieves and forwards the requested first content32. Similarly, the subsequent request 56 communicates to another contentserver 58 (or the content server 30), and that another content server 58retrieves and forwards the subsequently requested content 60. Bothstreams 32, 60 communicate along the communications network 26 andencounter the metering application 20 operating in the computer server22. The metering application 20 identifies and classifies each stream 32and 60. Because both streams 32 and 60 are destined for the sameend-user device 24, most likely a single rate limit 40 applies to thecombined bandwidth. That is, even though the end-user has requested twodistinct streams of data, the bandwidth consumed by both streams stillmust be less than or equal to the rate limit 40. When the rate limit 40is exceeded, the metering application 20 must decide whether degradationis needed and, if so, how one or both streams are degraded.

When degradation is needed, the metering application may employ variousschemes. As FIG. 5 illustrates, one simple scheme is to cancel, or drop,one of the requested streams. The metering application 20 decides whichstream 32 or 60 is dropped. FIG. 5 applies the “first in, first out”principle such that the requested first content 32 is permitted to passto the end-user device 24. The metering application 20, however, decidesto drop or cancel the subsequently requested content 60. If the bit rateof the remaining first content stream 32 is less than the rate limit 40,then no further processing may be required. If, however, the bit rate ofthe remaining first content stream 32 is still greater than the ratelimit 40, then the metering application 20 would apply the other schemesdiscussed herein to further reduce the bit rate. Even though FIG. 5illustrates the “first in, first out” principle, the meteringapplication 20 could alternatively employ a “last in, first out”principle.

FIG. 6 is a schematic illustrating an alternative scheme for concurrentstreams, according to the exemplary embodiments. FIG. 6 is similar toFIG. 5 and again shows both streams 32 and 60 communicating along thecommunications network 26 and encountering the metering application 20operating in the computer server 22. Because both streams 32 and 60 aredestined for the same end-user device 24, the bandwidth consumed by bothstreams must be less than or equal to the rate limit 40. When the ratelimit 40 is exceeded, here the metering application 20 degrades bothstreams 32 and 60. That is, the metering application 20 discards packetsof data from both the first stream 32 and the subsequent second stream60 to reduce the combined bit rate. Here, then, the metering application20 strives to provide both streams to the same end-user, but bothstreams 32 and 60 must be degraded. The metering application 20, forexample, could degrade high-definition television service to standarddefinition service. Should both the first stream 32 and the secondstream 60 be composed of high-definition Internet Protocol televisiondata packets, the metering application 20 would discard packets fromboth streams such that the combined bit rate is less than or equal tothe maximum bit rate. The metering application 20 would discard packetsof data such that both streams 32 and 60 are reduced tostandard-definition Internet Protocol television service. The degraded,standard-definition Internet Protocol television service streams 62 and64 are delivered to end user device 24.

FIG. 7 is a schematic illustrating another scheme for concurrentstreams, according to the exemplary embodiments. The end-user, asbefore, issues the first request 28 for content and the subsequentrequest 56 for content. The metering application 20 receivesnotification of each request 28 and 56. The metering application 20 isinformed of each request 28 and 56 by various means. Each request 28 and56, for example, may first route to the metering application 20. Eachcontent server 30 and 58, alternatively or additionally, may communicatea notification of each requested stream to the metering application 20.A network control layer may also inform the metering application 20 ofeach request 28 and 56. Regardless of how the metering application 20 isinformed, the metering application 20 may determine that the combinedbandwidth consumed by both streams will exceed the rate limit 40. Here,then, the metering application 20 proactively cancels the subsequentrequest 56 for content. The metering application 20 may communicate acancel command to the second content server 58. The metering application20 may additionally or alternatively quarantine the subsequent request56 for content, thus preventing the second content server 58 fromreceiving the subsequent request 56. If the bit rate of the firstrequested content stream 32 is less than the rate limit 40, then nofurther processing may be required. If, however, the bit rate of theremaining first content stream 32 is still greater than the rate limit40, then the metering application 20 would apply the schemes discussedherein to further reduce the bit rate.

FIG. 8 is a schematic illustrating another scheme for enforcing ratelimits, according to more exemplary embodiments. Here the meteringapplication 20 strips and discards certain information to reducebandwidth. The requested content 32 flows to the computer server 22. Themetering application 20 identifies the requested content 32 as a stream70 of Internet Protocol television data packets. The meteringapplication 20 then classifies the stream 70 according to the rate class38 and the associated rate limit 40. When the actual bit rate of thestream 70 exceeds the rate limit 40, the metering application 20 mustdecide whether to enforce the rate limit 40. If the metering application20 enforces the rate limit 40, the metering application 20 may remove orstrip information from the stream 70 of Internet Protocol televisiondata packets. FIG. 8, for example, illustrates that the meteringapplication 20 strip and discard color information from the stream 70 ofInternet Protocol television data packets to reduce the bit rate. Theresultant, egressing stream 72 exiting the computer server 22 would bereduced in bandwidth to essentially a black and white televisionexperience. If the bit rate of the stream 70 still exceeds the ratelimit 40, the metering application 20 may additionally or alternativelystrip and discard audio information from the stream 70 of InternetProtocol television data packets to reduce the bit rate.

FIG. 9 is a schematic illustrating more schemes for enforcing ratelimits, according to still more exemplary embodiments. Here the meteringapplication 20 uses multi-layer encoding to reduce bandwidth. Themetering application 20 receives multiple layers of coded streamscorresponding to different sized pictures. The metering application 20,for example, may receive a coded one-quarter (¼) stream 74 and a codedone-half (½) stream 76. The coded one-quarter (¼) stream 74 requires onefourth (¼) of the bandwidth of a full-sized stream, while the codedone-half (½) stream 76 requires one half (½) of the bandwidth of afull-sized stream. The coded one-quarter (¼) stream 74 contains onefourth the pixels, thus producing only a quarter screen experience atthe end-user's display device. Similarly, the coded one-half (½) stream76 contains fifty percent (50%) of the pixels, thus producing ahalf-screen experience at the end-user's display device. The meteringapplication may sum, or replicate, various streams to achieve whateverpicture scale or size is desired. When the metering application 20 mustdegrade a stream to enforce the rate limit 40, the metering application20 can selectively differentiate between the coded streams 74 and 76 toreduce bandwidth. The end-user receives their requested content, but theviewing experience (e.g., screen size) is degraded, and thus bandwidthis reduced, according to the rate limit 40.

FIG. 10 is a schematic illustrating yet more schemes for enforcing ratelimits, according to even more exemplary embodiments. Here the meteringapplication 20 receives two separate channels streams. A standarddefinition stream 78 is encoded at a standard definition rate, while ahigh-definition stream 80 is encoded at a high definition rate. If therate class 38 permits the higher rate of the high definition stream 80,then no degradation is needed. If, however, the rate class 38 does notpermit transmission of the high definition stream 80, the meteringapplication 20 switches feeds to the standard definition stream 78. So,even though the end-user may have requested an HDTV experience, theend-user only subscribes to a standard definition class.

FIG. 11 is a schematic illustrating more schemes for enforcing ratelimits, according to more exemplary embodiments. Here the meteringapplication 20 again receives two separate channels streams. Thestandard definition stream 78 is encoded at the standard definitionrate. A delta definition stream 82 is also received, and the deltadefinition stream 82 contains additional information for the HDTVexperience. If the rate class 38 permits the HDTV experience, then themetering application 20 passes, or sums, the standard definition stream78 and the delta definition stream 82. If, however, the rate class 38does not permit an HDTV experience, the metering application 20 onlycommunicates the standard definition stream 78. Again, even though theend-user may have requested an HDTV experience, if the end-user onlysubscribes to a standard definition class, the metering application 20degrades to the standard TV experience.

The end-user device 24 may also take actions. When the meteringapplication 20 discards packets, the end-user device 24 mayintelligently determine that poor video conditions exist. Recall thatwhen the metering application 20 discards packets, the degraded stream(shown as reference numeral 42 in FIG. 3) exits the computer server 22.Because packets have been discarded, the degraded stream has a lesserbandwidth. The degraded stream travels along the communications network26 to the end-user device 24. When the end-user device 24 receives thedegraded stream, the end-user device may itself analyze the degradedstream. The end-user device 24 may determine that too much informationhas been discarded. That is, the degraded stream produces anunacceptable video experience. The end-user device 24 may then determinethat the requested, but degraded, channel is unavailable.

Data streams may also be enhanced. Heretofore the metering application20 has been described as discarding/clipping packets to reducebandwidth. The metering application 20, however, may also enhancestreams of data. The metering application 20, for example, may enhancedata to improve color, sound, resolution, or any other characteristic orperformance criteria. The end-user device 24, likewise, may also enhancestreams. Recall again that the metering application 20 discards or clipspackets to reduce bandwidth. When the end-user device 24 receives thedegraded stream, the end-user device analyzes the degraded stream. Ifthe amount of clipping is small/limited, the end-user device may takeactions to enhance picture quality. The end-user device may interpolatebetween data, and/or the end-user device 24 may correct for noticeableand/or known errors or conditions.

The metering application 20 operates regardless of the packet protocol.That is, any packet protocol is suitable for these concepts. As those ofordinary skill in the art understand, sometimes information ispacketized (or “framed”) for use in packet networks. The information isgrouped into packets according to a packet protocol. As those ofordinary skill in the art also understand, there are many packetprotocols. Some of the more well-known packet protocols include TCP/IP,IPX/SPX, AppleTalk, and SNA. Some standards organizations, such as theI.E.E.E., issue standards for packetizing data. Because many networksare “mixed”—that is, the network receives and handles packets ofdiffering protocols, a “translator” determines the particular packetprotocol and the appropriate destination for each packet. Because thebasics of packetizing and packet protocols are well-known, packetizingschemes are not further described here.

FIG. 12 depicts another possible operating environment for the exemplaryembodiments. FIG. 12 is a block diagram showing the metering application20 residing in a computer system 130 (such as the computer server 22shown in FIGS. 1-11). FIG. 12, however, may also represent a blockdiagram of the end-user device (shown as reference numeral 24 in FIGS.1-11). FIG. 12, in fact, may represent a block diagram of the meteringapplication 20 operating in any processor-controlled device, such as apersonal digital assistant (PDA), a Global Positioning System (GPS)device, an interactive television, an Internet Protocol (IP) phone, apager, a cellular/satellite phone, or any communications deviceutilizing a digital signal processor (DSP). FIG. 12 may also represent ablock diagram of watches, radios, vehicle electronics, clocks, printers,gateways, and other apparatuses and systems utilizing the meteringapplication 20.

As FIG. 12 shows, the metering application 20 operates within a systemmemory device. The metering application 20, for example, is shownresiding in a memory subsystem 132. The metering application 20,however, could also reside in flash memory 134 or peripheral storagedevice 136. The computer system 130 also has one or more centralprocessors 138 executing an operating system. The operating system, asis well known, has a set of instructions that control the internalfunctions of the computer system 130. A system bus 140 communicatessignals, such as data signals, control signals, and address signals,between the central processor 138 and a system controller 142 (typicallycalled a “Northbridge”). The system controller 142 provides a bridgingfunction between the one or more central processors 138, a graphicssubsystem 144, the memory subsystem 132, and a PCI (PeripheralController Interface) bus 146. The PCI bus 146 is controlled by aPeripheral Bus Controller 148. The Peripheral Bus Controller 148(typically called a “Southbridge”) is an integrated circuit that servesas an input/output hub for various peripheral ports. These peripheralports could include, for example, a keyboard port 150, a mouse port 152,a serial port 154 and/or a parallel port 156 for a video display unit,one or more external device ports 158, and networking ports 160 (such asSCSI or Ethernet). The Peripheral Bus Controller 148 could also includean audio subsystem 162. Those of ordinary skill in the art understandthat the program, processes, methods, and systems described herein arenot limited to any particular computer system or computer hardware.

One example of the central processor 138 may be a microprocessor.Advanced Micro Devices, Inc., for example, manufactures a full line ofATHLON™ microprocessors (ATHLON™ is a trademark of Advanced MicroDevices, Inc., One AMD Place, P.O. Box 3453, Sunnyvale, Calif.94088-3453, 408.732.2400, 800.538.8450, www.amd.com). The IntelCorporation also manufactures a family of X86 and P86 microprocessors(Intel Corporation, 2200 Mission College Blvd., Santa Clara, Calif.95052-8119, 408.765.8080, www.intel.com). Other manufacturers also offermicroprocessors. Such other manufacturers include Motorola, Inc. (1303East Algonquinx Road, P.O. Box A3309 Schaumburg, Ill. 60196,www.Motorola.com), International Business Machines Corp. (New OrchardRoad, Armonk, N.Y. 10504, (914) 499-1900, www.ibm.com), and TransmetaCorp. (3940 Freedom Circle, Santa Clara, Calif. 95054,www.transmeta.com). Those skilled in the art further understand that theprogram, processes, methods, and systems described herein are notlimited to any particular manufacturer's central processor.

According to an exemplary embodiment, the WINDOWS® (WINDOWS® is aregistered trademark of Microsoft Corporation, One Microsoft Way,Redmond Wash. 98052-6399, 425.882.8080, www.Microsoft.com) operatingsystem may be used. Other operating systems, however, are also suitable.Such other operating systems would include the UNIX® operating system(UNIX® is a registered trademark of the Open Source Group,www.opensource.org), the UNIX-based Linux operating system, WINDOWS NT®,and Mac® OS (Mac® is a registered trademark of Apple Computer, Inc., 1Infinite Loop, Cupertino, Calif. 95014, 408.996.1010, www.apple.com).Those of ordinary skill in the art again understand that the program,processes, methods, and systems described herein are not limited to anyparticular operating system.

The system memory device (shown as memory subsystem 132, flash memory134, or peripheral storage device 136) may also contain an applicationprogram. The application program cooperates with the operating systemand with a video display unit (via the serial port 154 and/or theparallel port 156) to provide a Graphical User Interface (GUI). TheGraphical User Interface typically includes a combination of signalscommunicated along the keyboard port 150 and the mouse port 152. TheGraphical User Interface provides a convenient visual and/or audibleinterface with a user of the computer system 130.

FIG. 13 is a flowchart illustrating a method of enforcing a rate limitfor data traffic. A unidirectional stream is identified flowing though aserver to a downstream end user (Block 170). The unidirectional streamis classified according to a rate class (Block 172). Each rate class hasan associated rate limit, and each rate limit specifies a maximum bitrate at which the unidirectional stream may flow (Block 174). Theunidirectional stream may be classified according to at least one of i)the end user's monthly payment history (Block 176), ii) the end user'sabuse of network privileges (Block 178), and/or iii) the end user'shistory of excessive bit rate requests (Block 180). Enforcement of therate limit may be influenced by a history of one or more delinquentpayments, a history of bad behavior (such as spamming activity), and/ora history of repeated requests for data that exceed the maximum bitrate. If the actual bit rate is less than or equal to the rate limit(Block 182), then the metering application need not, but still may, takeaction to reduce bandwidth. If, however, the actual bit rate exceeds therate limit (Block 182), then packets of data are discarded to reduce bitrates (Block 184).

The flowchart continues with FIG. 14. Packets are discarded until thebit rate is less than or equal to the maximum bit rate permitted for theassociated rate class (Block 186). The discarded packets may causedegradation from high definition television service to standarddefinition television service (Block 188). Color information may bestripped to reduce the bit rate (Block 190). Audio information may alsobe stripped from the unidirectional stream to reduce bit rate (Block192). If a request for a second unidirectional stream is received fromthe same end user (Block 194), then that request is processed (Block196). If, however, the combined bit rate of the first and second streamsexceeds the maximum bit rate permitted for the associated rate class(Block 198), then the subsequent request may be canceled (Block 200). Analternative scheme discards packets of data from both the first andsecond streams to reduce the combined bit rate such that the combinedbit rate is less than or equal to the maximum bit rate (Block 202).

The metering application may be physically embodied on or in acomputer-readable medium. This computer-readable medium may includeCD-ROM, DVD, tape, cassette, floppy disk, memory card, andlarge-capacity disk (such as IOMEGA®, ZIP®, JAZZ®, and otherlarge-capacity memory products (IOMEGA®, ZIP®, and JAZZ® are registeredtrademarks of Iomega Corporation, 1821 W. Iomega Way, Roy, Utah 84067,801.332.1000, www.iomega.com). This computer-readable medium, or media,could be distributed to end-users, licensees, and assignees. These typesof computer-readable media, and other types not mention here butconsidered within the scope of the exemplary embodiments, allow themetering application to be easily disseminated. A computer programproduct comprises the metering application stored on thecomputer-readable medium. The metering application comprisescomputer-readable instructions for enforcing a rate limit for datatraffic. The computer-readable instructions identify a unidirectionalstream flowing though a server to a downstream end user. Theunidirectional stream is classified according to a rate class, with eachrate class having an associated rate limit. Each rate limit specifies amaximum bit rate at which the unidirectional stream may flow. Packets ofdata within the unidirectional stream are discarded to reduce a bit ratesuch that the bit rate is less than or equal to the maximum bit ratepermitted for the associated rate class.

The metering application may be physically embodied on or in anyaddressable (e.g., HTTP, I.E.E.E. 802.11, Wireless Application Protocol(WAP)) wireless device capable of presenting an IP address. Examplescould include a computer, a wireless personal digital assistant (PDA),an Internet Protocol mobile phone, or a wireless pager.

While the exemplary embodiments have been described with respect tovarious features, aspects, and embodiments, those skilled and unskilledin the art will recognize the exemplary embodiments are not so limited.Other variations, modifications, and alternative embodiments may be madewithout departing from the spirit and scope of the exemplaryembodiments.

1. A method of enforcing a rate limit for data traffic, the methodcomprising: identifying a unidirectional stream of data packets flowingto a downstream end user; classifying the unidirectional stream of datapackets according to a rate class, the rate class having an associatedrate limit, the rate limit specifying a maximum bit rate at which theunidirectional stream of data packets may flow; and discarding datapackets within the unidirectional stream of data packets to reduce a bitrate such that the bit rate is greater than zero and less than themaximum bit rate permitted for the rate class.
 2. A method according toclaim 1, wherein the unidirectional stream of data packets comprisesinternet protocol television data packets.
 3. A method according toclaim 2, wherein discarding data packets includes to discarding datapackets cause a degradation from high definition television service tostandard definition television service.
 4. A method according to claim1, wherein the unidirectional stream of data packets is provided as afirst unidirectional stream of data packets in response to a firstrequest from the end user, and the method further comprising processinga second request for a second unidirectional stream of data packets fromthe same end user.
 5. A method according to claim 4, further comprisingcanceling the first request when the combined bit rate of the firstunidirectional stream of data packets and the second unidirectionalstream of data packets exceeds the maximum bit rate permitted for therate class.
 6. A method according to claim 4, further comprisingdiscarding data packets from both the first unidirectional stream ofdata packets and second unidirectional stream of data packets to reducea combined bit rate such that the combined bit rate is greater than zeroand less than the maximum bit rate.
 7. A method according to claim 2,wherein discarding the data packets comprises stripping information fromthe unidirectional stream of internet protocol television data packetsto reduce the bit rate.
 8. A method according to claim 1, whereinclassifying the unidirectional stream of data packets comprisesclassifying according to (i) end user monthly payment history, wherein ahistory of one or more delinquent payments influences a frequency ofenforcement of the rate limit and (ii) end user history of excessive bitrate requests, wherein a history of repeated requests for data thatexceeds the maximum bit rate influences the frequency of enforcement ofthe rate limit.
 9. A system for enforcing a rate limit for data traffic,the system comprising: a metering application stored in a memory device;and a processor communicating with the memory device; the meteringapplication identifying a unidirectional stream of data packets flowingto a downstream end user; the metering application classifying theunidirectional stream of data packets according to a rate class, therate class having an associated rate limit, the rate limit specifying amaximum bit rate at which the unidirectional stream of data packets mayflow; and the metering application discarding data packets within theunidirectional stream of data packets to reduce a bit rate such that thebit rate is greater than zero and less than the maximum bit ratepermitted for the rate class.
 10. A system according to claim 9, whereinthe unidirectional stream of data packets comprises internet protocoltelevision data packets, and wherein the metering application discardsdata packets to cause a degradation from high definition televisionservice to standard definition television service.
 11. A systemaccording to claim 9, wherein the unidirectional stream of data packetsis provided as a first unidirectional stream of data packets in responseto a first request from the end user, and wherein the system furtherprocesses a second request for a second unidirectional stream of datapackets from the same end user.
 12. A system according to claim 11,wherein the metering application cancels the first request when thecombined bit rate of the first unidirectional stream of data packets andsecond unidirectional stream of data packets exceeds the maximum bitrate permitted for the rate class.
 13. A system according to claim 11,wherein the metering application discards data packets from both thefirst unidirectional stream of data packets and the secondunidirectional stream of data packets to reduce a combined bit rate suchthat the combined bit rate is less than the maximum bit rate.
 14. Asystem according to claim 10, wherein the metering application furtherperforms stripping information from the unidirectional stream ofinternet protocol television data packets to reduce the bit rate.
 15. Asystem according to claim 9, wherein the metering application classifiesaccording to (i) end user monthly payment history, wherein a history ofdelinquent payments influences a frequency of enforcement of the ratelimit and (ii) end user history of excessive bit rate requests, whereina history of requests for data that exceed the maximum bit rateinfluences the frequency of enforcement of the rate limit.
 16. Acomputer program product, comprising: a non-transitory computer-readablemedium; and a metering application stored on the non-transitorycomputer-readable medium, the metering application comprisingcomputer-readable instructions for enforcing a rate limit for datatraffic, the metering application: identifying a unidirectional streamof internet protocol television data packets flowing through a server toa downstream end user; classifying the unidirectional stream of internetprotocol television data packets according to a rate class, with therate class having an associated rate limit, the rate limit specifying amaximum bit rate at which the unidirectional stream of internet protocoltelevision data packets may flow; and discarding data packets within theunidirectional stream of internet protocol television data packets toreduce a bit rate such that the bit rate is greater than zero and lessthan the maximum bit rate permitted for the rate class.
 17. A computerprogram product according to claim 15, wherein the metering applicationdiscards data packets to cause a degradation from high definitiontelevision service to standard definition television service.
 18. Acomputer program product according to claim 15, wherein the meteringapplication processes a request for a second unidirectional stream ofinternet protocol television data packets from the same end user, andwherein the metering application cancels the request for the secondunidirectional stream of internet protocol television data packets whenthe combined bit rate of the first unidirectional stream of internetprotocol television data packets and second unidirectional stream ofinternet protocol television data packets exceeds the maximum bit ratepermitted for the rate class.
 19. A computer program product accordingto claim 15, wherein the metering application strips information fromthe unidirectional stream of internet protocol television data packetsto reduce the bit rate.
 20. A computer program product according toclaim 16, wherein the metering application classifies the unidirectionalstream of internet protocol television data packets according to (i) enduser monthly payment history, wherein a history of one or moredelinquent payments influences a frequency of enforcement of the ratelimit and (ii) end user history of excessive bit rate requests, whereina history of repeated requests for data that exceed the maximum bit rateinfluences the frequency of enforcement of the rate limit.